home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir27 / grphca22.zip / GRAPHICA.DOC < prev    next >
Text File  |  1993-02-03  |  43KB  |  1,274 lines

  1.  
  2. GRAPHICA v2.2
  3. A System for Drawing Scientific Graphs
  4.  
  5. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6.  
  7. User's Manual
  8.  
  9. by Antonio Montes
  10.  
  11. 3 February 1993
  12.  
  13.  
  14. (C) Copyright 1992,1993 Antonio Montes.
  15. Portions (C) Copyright 1991 Borland International.
  16.  
  17. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  18.  
  19. If you like this program, you can send a contribution to the
  20. address near the end of this file.  The version you get is the
  21. full and latest version released as of the date above.
  22.  
  23. Contributors to the development of GRAPHICA are entitled to mail
  24. support, a copy of the latest version and a printed manual.
  25. Please tell me the version number of your copy of GRAPHICA when
  26. you send in your contribution.  My address can be found near the
  27. end of this file.
  28.  
  29.  
  30. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  31.  
  32.  
  33. MANUAL SUMMARY
  34. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  35.  
  36. Chapter 1: INTRODUCTION  Contains information concerning
  37.            installation and hardware requirements.
  38.  
  39. Chapter 2: GETTING STARTED  Defines the fundamental elements
  40.            common to all plots, defines the manual usage
  41.            and presents a description of the command syntax.
  42.  
  43. Chapter 3: TUTORIAL  Takes the user through a series of
  44.            short lessons to get familiar with GRAPHICA.
  45.  
  46. Chapter 4: COMMAND REFERENCE  Gives a list of all the commands
  47.            understood by GRAPHICA.
  48.  
  49. Chapter 5: ADDITIONAL INFORMATION  Provides additional
  50.            information on program access, reporting bugs,
  51.            and other concepts useful to run GRAPHICA.
  52.  
  53. CONTRIBUTIONS
  54. SHAREWARE DISTRIBUTION
  55.  
  56.  
  57. TABLE OF CONTENTS
  58. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  59.  
  60. Chapter 1. INTRODUCTION
  61.  
  62.           1.1  Overview
  63.           1.2  Disclaimer
  64.           1.3  Files
  65.           1.4  Equipment Requirements
  66.           1.5  Installation
  67.  
  68. Chapter 2  GETTING STARTED
  69.  
  70.           2.1  Overview
  71.           2.2  Document Conventions
  72.           2.3  Starting Up and Exiting
  73.           2.4  For Beginners
  74.           2.5  Errors
  75.  
  76. Chapter 3  TUTORIAL
  77.  
  78.           3.1  Introduction
  79.           3.2  Entering Commands
  80.           3.3  Plotting Functions
  81.           3.4  Plotting Data
  82.           3.5  Plotting Data Files
  83.           3.6  Plotting Parametric Curves
  84.           3.7  Using Script Files
  85.           3.8  Multiple Graphs on one Page
  86.           3.9  Importing GRAPHICA Plots into WordPerfect
  87.  
  88. Chapter 4  COMMAND REFERENCE
  89.  
  90. Chapter 5  ADDITIONAL INFORMATION
  91.  
  92.           5.1  Mathematical Expressions
  93.           5.2  Environment Variables
  94.           5.3  Startup File
  95.           5.4  Comments
  96.           5.5  Text Control Sequences
  97.           5.6  User-Defined Functions and Variables
  98.           5.7  Bug Reporting
  99.  
  100.  
  101. Chapter 1  INTRODUCTION
  102. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  103.  
  104. 1.1  Overview
  105. ─────────────
  106.  
  107. GRAPHICA is a command-driven interactive graphics program for
  108. making presentation quality graphs on a computer.  This two-
  109. dimensional data plotting system is designed specifically for
  110. scientific and engineering applications.  GRAPHICA is SHAREWARE,
  111. i.e. it's user-supported.  GRAPHICA is easy to use, interactive,
  112. and powerful.  With GRAPHICA, you can:
  113.  
  114.      o   plot functions or data files
  115.      o   evaluate and plot mathematical expressions
  116.      o   fit spline or polynomials to data
  117.      o   display and print a graph on hardcopy devices
  118.      o   export graphs in HPGL, PostScript or other formats
  119.      o   draw text in roman, greek and cyrillic fonts
  120.      o   get online help
  121.  
  122.  
  123. 1.2  Disclaimer
  124. ───────────────
  125.  
  126. The authors have made their best effort in producing this
  127. software, but hereby disclaim all warranties.  The authors will
  128. not be liable for any damages arising from the use or misuse of
  129. GRAPHICA.  The person using the software bears all risk as to
  130. the quality and performance of the software.  The program is
  131. provided as is.
  132.  
  133.  
  134. 1.3  Files
  135. ──────────
  136.  
  137. GRAPHICA consists of the following files:
  138.  
  139.           GRAPHICA.EXE     main program
  140.           GRAPHICA.HLP     help file
  141.           GRAPHICA.DOC     user manual (this file)
  142.           README.1ST       quick instructions
  143.           HISTORY.DOC      log of latest changes
  144.           EXAMPLES.ZIP     an archive containing
  145.  
  146.           *.PLT            sample input files
  147.           *.DAT            data files
  148.  
  149.  
  150. 1.4  Equipment Requirements
  151. ───────────────────────────
  152.  
  153. GRAPHICA normally detects automatically what graphics monitor
  154. hardware is present in order to preview graphs.  In general, you
  155. basically need the following items:
  156.  
  157.           Computer:          IBM PC,XT,AT or compatibles
  158.  
  159.           Disk Drives:       2 floppy drives or 1 floppy drive/hard drive
  160.  
  161.           Memory:            640K Bytes
  162.  
  163.           Video Cards:       CGA, EGA, VGA or compatible adapter
  164.                              Hercules Monochrome Adapter or compatible
  165.  
  166.           Hardcopy:
  167.           - Plotters         HP7475A or HPGL compatible
  168.           - Printers         Epson 80 and 100 series
  169.                              Panasonic 1080i or equivalent
  170.  
  171.           Other Output:      PIC
  172.                              HPGL
  173.                              PostScript
  174.  
  175.  
  176. 1.5  Installation
  177. ─────────────────
  178.  
  179. There are no special installation requirements.  The simplest
  180. procedure is to make a new directory on your hard disk, and to
  181. copy all of the files there.  You may wish to put the GRAPHICA
  182. directory on your path, or to copy the files to a RAM disk.
  183.  
  184. Let's suppose you wish to install GRAPHICA into a directory
  185. called GRAPH.  To create the directory, simply do the following:
  186.  
  187.           C:\md graph
  188.           C:\cd graph
  189.  
  190. If you have changed your system prompt with $P$G (as part of
  191. your AUTOEXEC.BAT file, for example), the prompt should show:
  192.  
  193.           C:\GRAPH>
  194.  
  195. GRAPHICA should have been distributed as one file, called
  196. GRPHCA22.ZIP or GRPH22.ZIP.  If so, then all files will have
  197. to be extracted.  To do this run PKUNZIP or equivalent program
  198. on the command line.  If you received GRPHCA22.ZIP, do:
  199.  
  200.           C:\GRAPH>pkunzip grphca22
  201.  
  202. All the GRAPHICA files will be put in this directory and you are
  203. ready to start graphing.
  204.  
  205.  
  206. Chapter 2  GETTING STARTED
  207. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  208.  
  209. 2.1  Overview
  210. ─────────────
  211.  
  212. GRAPHICA is an interactive computer program which accepts
  213. English sentence specifications of graphs, and, from those
  214. specifications, produces publication quality pictures.  This
  215. manual describes how to use GRAPHICA.  The specifications that
  216. the user provides are referred to as "commands" or "statements".
  217.  
  218. Final graphs are of publication quality and may be fitted to
  219. pages with existing text thereby eliminating costly reproduc-
  220. tions (photocopying and reduction).
  221.  
  222. The user operates the program through a set of problem oriented
  223. language (POL) commands.  Each command consists of keywords and
  224. data values separated by blanks or commas.  This requires
  225. minimum data input and enables simple and efficient graphing.
  226. For example, if the user enters:
  227.  
  228.           map x 0,10 y 0,100
  229.  
  230. GRAPHICA determines that the user wants the x-axis range set from
  231. 0 to 10 and the y-axis range set from 0 to 100.  The user must
  232. separate entities in a command with blanks or commas.  In this
  233. manual, blanks are not explicitly indicated.
  234.  
  235. GRAPHICA capabilities include:
  236.  
  237.           - multiple curve plotting and graphs
  238.           - axis drawing with labels and scaled divisions
  239.           - log-log, semilog, probability and linear plots
  240.           - graph titles and legends
  241.           - lettering in five fonts and different sizes
  242.           - hardware and software character generation
  243.           - 3 units of measure (in, cm, mm)
  244.  
  245.  
  246. 2.2  Document Conventions
  247. ─────────────────────────
  248.  
  249. Input to GRAPHICA is in the form of a problem oriented language
  250. (POL) designed specifically for graphing purposes.  The
  251. following is a description of the conventions used within the
  252. manual to explain GRAPHICA commands.
  253.  
  254. The appearance within a GRAPHICA command of a descriptor of the
  255. form <integer> implies that the user is to enter an item of data
  256. within that position in the statement of the class described by
  257. the descriptor (in the above example, an integer).  The command
  258.  
  259.           divisions x <integer>,<integer>
  260.  
  261. implies that the word divisions is to be followed by the word x
  262. and two integers such as 2 or 3, and that the statement entered
  263. by the user as input data should be of the form
  264.  
  265.           divisions x 2,2
  266.  
  267. The following are definitions of most of the descriptors used
  268. within the language.  Those not described below are ex- plained
  269. when they first occur in the text.
  270.  
  271. <integer> a series of digits optionally preceeded by a plus or a
  272.           minus sign.  Examples are 121, +300, -410.
  273.  
  274. <real> a series of digits with a decimal point included, or a
  275.           series of digits with a decimal point followed by an
  276.           exponent indicating a power of 10.  Real numbers may be
  277.           optionally signed.  Examples are 1.0, -2.5, 3.6E+10.
  278.  
  279. <value> is either an integer or a real number.
  280.  
  281. 'string' is any textual information enclosed within a pair of
  282.           apostrophes (') or quotes (").  An example is 'Are you 
  283.           following this so far?'
  284.  
  285. As noted above, input to GRAPHICA is a series of English- like
  286. commands.  Many of the words or phrases in these commands are
  287. optional and are permitted primarily for readability or are used
  288. to specify options within a command.  The curly braces {} denote
  289. these optional items.
  290.  
  291. Each command is entered on a new line.  Commands can be entered
  292. in lower case, upper case, or both.  Only the first significant
  293. characters of a command are needed.  A line starting with a left
  294. square bracket [ or a # will be treated as a comment line.
  295. Also, anything after those two characters in a line will be
  296. treated as a comment (see section 5.5).
  297.  
  298. Items such as <integer> shown in the command definitions must
  299. always be replaced by an integer.  Undesignated items such as
  300. <minimum>, <maximum>, etc. can be replaced by either an integer
  301. or a real.  For example,
  302.  
  303.           divisions x2 <integer>,<integer>
  304.  
  305. can be specified as
  306.  
  307.           div x2 3 2
  308. whereas
  309.           map x <minimum value> <maximum value>
  310.  
  311. can be entered as
  312.  
  313.           map x 20 30
  314. or
  315.           map x 20.0 30.0
  316.  
  317. Sometimes keywords in a command line can be entered in any order
  318. (except the very first one, of course).  For instance,
  319.  
  320.           plot add x connect y
  321.  
  322. will plot the X/Y data connecting all points and adding symbols.
  323.  
  324. In many commands, items may be repeated or more than one word is
  325. acceptable in a given position within a command.  The choices
  326. are listed enclosed in curly brackets '{}'.  For example, the
  327. command definition
  328.  
  329.           draw {x} {y} {x2} {y2} {mask} {reflect}
  330.  
  331. indicates that the user may enter commands like
  332.  
  333.           draw x reflect y2 reflect
  334.           draw x y
  335.           draw y reflect x2 mask.
  336.  
  337. Similarly,
  338.  
  339.           paper {size} <horizontal value> {by} <vertical value>
  340.  
  341. can be written as
  342.  
  343.           paper size 11.0 by 8.5
  344.           pap 11.0 8.5
  345. or
  346.           paper 11 by 8.5
  347.  
  348. In order to be more descriptive within the command definitions,
  349. actual data items (items enclosed within '<>') are sometimes
  350. described in terms of their physical meaning and followed by the
  351. type or class of data item which can be used in the command.
  352. For example, a command definition of the form
  353.  
  354.           input {from} {file} <filename>
  355.  
  356. implies that the data item following the word input is the name
  357. of a file.  For example, acceptable commands would be
  358.  
  359.           input 'myfile.p'
  360.           input from 'graph.dat'
  361.  
  362. Filenames or labels are not acceptable if they are not enclosed
  363. within apostrophes or quotes.  Examples of commands with
  364. incorrect labels or filenames are
  365.  
  366.           input from my data
  367.           label top you*beast!
  368.           xlabel honey.pie
  369.  
  370.  
  371. 2.3  Starting Up and Exiting
  372. ────────────────────────────
  373.  
  374. GRAPHICA can be run from any directory as long as GRAPHICA.EXE
  375. is placed in the directory search path.  To start the plotting
  376. system, simply type graphica at the DOS prompt:
  377.  
  378.           C:\graphica
  379.  
  380. GRAPHICA takes a few seconds to load into memory, and when the
  381. graphica> prompt is displayed, the program is ready for your
  382. input.  To exit, type quit or exit at the GRAPHICA command
  383. level.
  384.  
  385.           graphica>quit
  386.  
  387. and you're back at the DOS prompt.
  388.  
  389.  
  390. 2.4  For Beginners
  391. ──────────────────
  392.  
  393. For a quick demonstration of GRAPHICA's main capabilities, run
  394. GRAPHICA and then load some of the sample script files (*.PLT).
  395. For example,
  396.  
  397.           C:\GRAPH\graphica (press return)
  398.           graphica>load 'demo' (press return)
  399.  
  400. Alternatively, command-line arguments may be names of files
  401. containing GRAPHICA commands.  Then, for example,
  402.  
  403.           C:\GRAPH\graphica demo
  404.  
  405. is another way of running the demo above.
  406.  
  407.  
  408. 2.5  Errors
  409. ───────────
  410.  
  411. Error messages are self-explanatory.  If an error is detected
  412. while parsing a command or a script file, GRAPHICA will inform
  413. you with a beep and message.
  414.  
  415.  
  416. CHAPTER 3  TUTORIAL
  417. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  418.  
  419. 3.1  Introduction
  420. ─────────────────
  421.  
  422. Welcome to the GRAPHICA tutorial.  A plot is a graphic image
  423. used to present information in a visual manner.  The components
  424. of a graphic image are:  lines, markers, text strings, polygons,
  425. etc.  The basic ingredients of a plot are:  a page, a subplot
  426. area and data points.  The data points are plotted using
  427. symbols, characters or simple dots.  Data points and curves are
  428. drawn or plotted on a grid space formed by Cartesian coordinate
  429. axes.  The horizontal line is the x-axis and the vertical line,
  430. the y-axis.
  431.  
  432. A graph is made with GRAPHICA by either loading an existing
  433. script file from the disk, or by creating a new graph through
  434. the command line.  This section explains how to create graphs.
  435.  
  436. All commands may be abbreviated, as long as the abbreviation is
  437. not ambiguous.  Any number of commands may appear on a line,
  438. separated by semicolons.  A file is loaded with the load
  439. command.
  440.  
  441. Commands may extend over several input lines, by ending each
  442. line but the last with a backslash (\).  The backslash must be
  443. the last character on each line.  The effect is as if the
  444. backslash and newline were not there.  Commenting out a
  445. continued line comments out the entire command.
  446.  
  447.  
  448. 3.2  Entering Commands
  449. ──────────────────────
  450.  
  451. For help on any topic, type help followed by the name of the
  452. topic at the graphica> prompt.
  453.  
  454. Let's get started.  Let's assume that you have copied all the
  455. GRAPHICA files in a directory called GRAPH.  Start GRAPHICA by
  456. entering graphica at the DOS prompt and pressing return:
  457.  
  458.           C:\GRAPH>graphica
  459.  
  460. The screen will clear, there will be a brief notice and you'll
  461. be at the graphica> prompt:
  462.  
  463.           graphica>
  464.  
  465. Now you are about to begin making scientific graphs.
  466.  
  467. The plot command is the heart of GRAPHICA.  It is used to plot
  468. data, functions and datafiles.  We will be using it a lot in the
  469. next few pages.
  470.  
  471. Anytime you are ready to type in the next GRAPHICA command and
  472. your screen shows a plot (in other words, you are in graphics
  473. mode), just press any key or start typing the command in.  At
  474. the graphica> prompt, you can always type show to have a look at
  475. what you have plotted on the screen so far.
  476.  
  477.  
  478. 3.3  Plotting Functions
  479. ───────────────────────
  480.  
  481. To plot a sine wave, enter the following command at the
  482. graphica> prompt:
  483.  
  484.           graphica>plot sin(x)
  485.  
  486. Within a few seconds, a graph of sin(x) as a function of x will
  487. be plotted.  Press any key and then enter:
  488.  
  489.           graphica>draw x y
  490.  
  491. The x and y axes will be drawn.  The x axis will range from -10
  492. to 10, since that is the default range.
  493.  
  494. You can plot functions that have singularities.  GRAPHICA will
  495. try to choose the appropriate y scale.  Enter:
  496.  
  497.           graphica>clear
  498.  
  499. to sort of clear your graphics slate.  Then enter:
  500.  
  501.           graphica>samples 300
  502.           graphica>plot tan(x)
  503.  
  504. The samples command simply tells GRAPHICA that we would like to
  505. plot more points of the function that the default of 150.  After
  506. that, the plot command plots the function.  To draw the axes, do:
  507.  
  508.           graphica>draw x y
  509.  
  510. You can give a list of functions to plot all at once.  Go ahead
  511. and clear everything by entering:
  512.  
  513.           graphica>clear
  514.  
  515. Then, map the x-axis with the following command:
  516.  
  517.           graphica>map x 0 2*pi
  518.  
  519. To actually plot the functions, enter:
  520.  
  521.           graphica>plot sin(x), sin(2*x), sin(3*x)
  522.  
  523. And to draw the axes:
  524.  
  525.           graphica>draw x y
  526.  
  527. GRAPHICA always tries to plot functions as smooth curves.  As a
  528. result, in places where your function wiggles a lot, you may
  529. adapt GRAPHICA's sampling of your function to the form of the
  530. function (we did that by giving the samples command at the
  531. beginning of this section.)  Since GRAPHICA can only sample
  532. your function at a limited number of points, it can sometimes
  533. miss features of the function.  By increasing samples, you can
  534. make GRAPHICA sample your function at a larger number of points.
  535. Of course, the larger you set samples to be, the longer it will
  536. take GRAPHICA to plot any function, even a smooth one.
  537.  
  538. The function sin(1/x) wiggles infinitely often when x is near
  539. zero.  GRAPHICA can never sample the infinite number that it
  540. would need to reproduce the function exactly.  As a result,
  541. there are slight glitches in the plot.  Go ahead and try it:
  542.  
  543.           graphica>clear
  544.           graphica>map x -1,1
  545.           graphica>plot sin(1/x)
  546.           graphica>draw x y
  547.  
  548. Now you have seen how to plot functions.  See section 5.1 for a
  549. more detailed explanation about mathematical expressions.
  550.  
  551.  
  552. 3.4  Plotting Data
  553. ──────────────────
  554.  
  555. You may combine two GRAPHICA commands, plot and data, to plot
  556. data points.  For example:
  557.  
  558.           graphica>clear
  559.           graphica>data
  560.           data>2 3
  561.           data>5 4
  562.           data>6 4
  563.           data>7 5
  564.           data>5 3
  565.           data>end
  566.           graphica>plot x y add
  567.           graphica>draw x y
  568.  
  569. This sequence of commands will result in a simple graph with
  570. both axis autoscaled.  See the map command for more details on
  571. how to change the x-axis scale in the plot.
  572.  
  573.  
  574. 3.5  Plotting Data Files
  575. ────────────────────────
  576.  
  577. Data may also be plotted by retrieving the information from a
  578. data file.  There are a couple of ways of doing this.  The first
  579. is by simply specifying:
  580.  
  581.           graphica>clear
  582.           graphica>data 'bob.dat'
  583.  
  584. where bob.dat contains 3 columns of numbers.  To plot the
  585. data, you can do:
  586.  
  587.           graphica>plot data
  588.  
  589. which will plot the first 2 columns.  To draw the axes:
  590.  
  591.           graphica>draw x y
  592.  
  593. Using the other method, you can plot a datafile directly:
  594.  
  595.           graphica>clear
  596.           graphica>plot 'bob.dat'
  597.  
  598. and now the axes:
  599.  
  600.           graphica>draw x y
  601.  
  602. The first method allows you to read in several columns of data
  603. and then choose which one will be plotted (see column in the
  604. reference section.)  By default, specifying plot data simply
  605. plots the first two columns of data as x versus y.
  606.  
  607.  
  608. 3.6  Plotting Parametric Curves
  609. ───────────────────────────────
  610.  
  611. In a parametric plot, you give both the x and y coordinates of
  612. each point as a function of a third parameter, say t.
  613.  
  614. Let us construct a parametric plot.  In this example, the
  615. parametric curve made by taking the x coordinate of each point
  616. to be sin(t) and the y coordinate to be sin(2*t):
  617.  
  618.           graphica>clear
  619.           graphica>parametric plot t 0,2*pi sin(t) sin(2*t)
  620.           graphica>draw x y
  621.  
  622.  
  623. 3.7  Using Script Files
  624. ───────────────────────
  625.  
  626. Every graph in this documentation can be readily reproduced from
  627. the script files provided in the GRAPHICA package.  A script
  628. file is simply a text file containing valid GRAPHICA commands.
  629. The script file can be executed by the load or input command.
  630. The name of the input file must be enclosed in single or double
  631. quotes:
  632.  
  633.           graphica>clear
  634.           graphica>load 'torp.plt'
  635.  
  636.  
  637. 3.8  Multiple Graphs on one Page
  638. ────────────────────────────────
  639.  
  640. With GRAPHICA, you may plot as many graphs on one page as you
  641. wish by changing the subplot area.  Try this:
  642.  
  643.           graphica>clear
  644.           graphica>load 'rocha.plt'
  645.  
  646. Several axes have been defined, x and y axes with labels, a y2
  647. axis without labels, etc.  The data shown is actual experimental
  648. data obtained by a doctoral student and the graph is part of his
  649. dissertation.
  650.  
  651. You may now quit GRAPHICA by typing exit at the graphica> prompt.
  652.  
  653.  
  654. 3.9  Importing GRAPHICA Plots into WordPerfect
  655. ──────────────────────────────────────────────
  656.  
  657. This document was prepared using WordPerfect 5.1.  The plots
  658. were produced with GRAPHICA, exported using HPGL output and
  659. imported into WordPerfect.  Once a graphic has been imported
  660. into WordPerfect, you can move it, scale it, rotate it, add
  661. captions, etc.  Let's create a graph with GRAPHICA and retrieve
  662. it into a WordPerfect document step by step.
  663.  
  664. There is a file in your distribution disk called ris108.plt.
  665. Start GRAPHICA:
  666.  
  667.           C:\GRAPH>graphica
  668.  
  669. and load the script file:
  670.  
  671.           graphica>load 'ris108.plt'
  672.  
  673. The screen will clear and a plot will be drawn.  In fact, this
  674. plot makes use of font 5 (complex cyrillic).  The graph was
  675. created after one in a russian text dealing with petroleum
  676. chemistry (I thought it might draw your attention).
  677.  
  678. Now press any key and enter:
  679.  
  680.           graphica>dump hpgl 'ris108.hpg'
  681.  
  682. The dump command will create a file called ris108.hpg containing
  683. HPGL commands.  You may later send this file to a plotter or
  684. pull it into any of the many programs that accept HPGL commands.
  685. Now, exit GRAPHICA by typing:
  686.  
  687.           graphica>quit
  688.  
  689. and start WordPerfect:
  690.  
  691.           C:\GRAPH>wp
  692.  
  693. When the screen clears, do the following:
  694.  
  695.           1) press Alt-F9 (for the graphics menu)
  696.           2) type 1 (for figure)
  697.           3) select 1 (for create)
  698.           4) select 1 (for filename)
  699.           5) enter ris108.hpg (to read the file in, no quotes)
  700.  
  701. WordPerfect will retrieve the HPGL information into a graphic
  702. box immediately.  You can edit the graph further within the
  703. graphics menu:
  704.  
  705.           6) press 9 (for edit)
  706.  
  707. or simply view the graph:
  708.  
  709.           7) press F7 (to exit the graphics menu)
  710.           8) press shift-F7 (for print)
  711.           9) press 6 (for view document)
  712.  
  713. and you have successfully imported a GRAPHICA plot into a
  714. WordPerfect document.
  715.  
  716.  
  717. CHAPTER 4  COMMAND REFERENCE
  718. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  719.  
  720. This chapter gives an alphabetical lookup for all the GRAPHICA
  721. built-in commands.  Here are all the supported commands:
  722.  
  723.  
  724. ARROW                  Plot an Arrow at the End of a Line
  725. AUDIT                  Set Command Trace
  726. AUTOSCALE              Set Axis Autoscaling
  727. AXES                   Draw One or More Axes
  728. BACKGROUND             Specify Background Color
  729. BEEP                   Turn beep on and off
  730. CHARACTER              Set Character Attributes
  731. CHARACTER FONT         Change the Character Font
  732. CHARACTER GAP          Change the Character Gap
  733. CHARACTER RATIO        Change the Character Ratio
  734. CHARACTER SIZE         Change the Character Size
  735. CHARACTER SLANT        Set the Character Slant
  736. CD                     Change the Working Directory
  737. CIRCLE                 Draw a Circle
  738. CLEAR                  Erase Output Device
  739. COLUMN                 Assign Data Columns to Axes
  740. DATA                   Read Data from Terminal or a File
  741. DEL                    Delete a file
  742. DIGITIZE               Establish an x-y position
  743. DIR                    List a directory
  744. DIVISIONS              Set Number of Axis Divisions
  745. DRAW                   Draw an Axis
  746. DUMMY                  Specify Dummy Variable
  747. DUMP                   Generate Hardcopy Output
  748. ECHO                   Echo Typed Commands
  749. EXIT                   Exit GRAPHICA
  750. EXPONENT               Select Format in Log Labels
  751. FORMAT                 Specify Axis Label Formats
  752. FRAME                  Draw a Frame
  753. GRID                   Draw a Grid
  754. HELP                   Display On-line Help
  755. LABEL                  Draw a Label
  756. LEGEND                 Draw a Legend
  757. LINE                   Draw a Line
  758. LOAD, INPUT            Specify an Input File
  759. LOCATION               Specify Type of x/y Position
  760. MAP                    Specify the Limits of an Axis
  761. MASK                   Mask a Rectangular Area
  762. MEMORY                 Give the Amount of Memory Left
  763. ORIGIN                 Specify Axis Origin
  764. OUTPUT                 Specify Output Terminal
  765. PAPER SIZE             Specify Paper Size
  766. PARAMETRIC PLOT        Plot a Parametric Curve
  767. PAUSE                  Pause and/or Wait for User Response
  768. PEN                    Specify a Pen Parameter
  769. PLOT                   Plot a Datafile, Curve or Function
  770. PLOTTING SEQUENCE      Select a Plotting Sequence
  771. POLYFIT                Generate a Polynomial by Least Squares
  772. PRINT                  Print the Value of an Expression
  773. PWD                    Print Current Working Directory
  774. QUIT                   Exit GRAPHICA
  775. RECTANGLE              Draw a Rectangle
  776. SAMPLES                Specify Sampling Rate
  777. SHADE                  Shade a Specified Set of Data
  778. SHELL                  Spawn a DOS Shell
  779. SHOW                   Show a Parameter
  780. SPLINE                 Fit Data to a Spline
  781. SUBPLOT AREA           Specify Area Where Plot Will Go
  782. SUB/SUPERSCRIPT        Set the Sub/Superscript Size
  783. SYMBOL                 Select a Plotting Symbol
  784. TERMINAL               Specify Output Terminal Type
  785. TIC                    Specify Tic Mark Size and Direction
  786. TITLE                  Draw a Centered Axis Label
  787. TYPE                   Type a file
  788. UNIT                   Specify Drawing Units
  789. VIEW                   Move Paper to View Plotter Output
  790. X,Y,X2,Y2              Specify Axis Type
  791. X,Y,X2,Y2LABEL         Draw a Centered Axis Label
  792.  
  793.  
  794. The file GRAPHICA.HLP (included with this package) is used by
  795. the program to give you online help.  It is an ASCII file and
  796. may be printed.  It contains detailed information about each of
  797. the above commands, their features and how to use them.
  798.  
  799.  
  800. CHAPTER 5  ADDITIONAL INFORMATION
  801. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  802.  
  803. 5.1  Mathematical Expressions
  804. ─────────────────────────────
  805.  
  806. In general, any mathematical expression accepted by C, FORTRAN,
  807. Pascal, or BASIC is valid.  The precedence of these operators is
  808. determined by the specifications of the C programming language.
  809. White space (spaces and tabs) is ignored inside expressions.
  810.  
  811. Complex constants may be expressed as the {<real>,<imag>}, where
  812. <real> and <imag> must be numerical constants.  For example,
  813. {3,2} represents 3 + 2i; {0,1} represents `i` itself.  The curly
  814. braces are explicitly required here.
  815.  
  816. functions
  817. ─────────
  818.  
  819. All functions in GRAPHICA accept integer, real, and complex
  820. arguments, unless otherwise noted.
  821.  
  822. abs(z) returns the absolute value of the real or complex number
  823. z.  The returned value is of the same type as the argument.  For
  824. complex arguments, abs(z) is defined as the length of z in the
  825. complex plane [i.e.,  sqrt(real(z)**2 + imag(z)**2) ].
  826.  
  827. acos(z) returns the arc cosine (inverse cosine) of z.  All
  828. results are given in radians.
  829.  
  830. arg(z) returns the phase angle of a complex number z, in
  831. radians.  The result is always between -π and π.
  832.  
  833. asin(z) returns the arc sine (inverse sine) of z.  All results
  834. are given in radians.
  835.  
  836. atan(z) returns the arc tangent (inverse tangent) of z.  All
  837. results are given in radians.
  838.  
  839. besj0(z) returns the j0th Bessel function of z.  besj0 expects z
  840. to be in radians.
  841.  
  842. besj1(z) returns the j1st Bessel function of z.  besj1 expects z
  843. to be in radians.
  844.  
  845. besy0(z) returns the y0th Bessel function of z.  besy0 expects z
  846. to be in radians.
  847.  
  848. besy1(z) returns the y1st Bessel function of z.  besy1 expects z
  849. to be in radians.
  850.  
  851. ceil(z) returns the smallest integer greater than z.  For
  852. complex numbers, ceil returns the smallest integer greater than
  853. the real part of z.
  854.  
  855. cos(z) returns the cosine of z.  cos expects z to be in radians.
  856.  
  857. cosh(z) returns the hyperbolic cosine of z.  cosh expects z to
  858. be in radians.
  859.  
  860. erf(z) returns the error function of z.  erf(z) is the integral of the
  861. Gaussian distribution.  The error function is central to many calculations
  862. in statistics.
  863.  
  864. erfc(z) returns the complementary error function of z.  erfc(z) is
  865. simply 1.0 - erf(z), where erf(z) is the integral of the Gaussian
  866. distribution.
  867.  
  868. exp(z) returns the exponential function of z (e raised to the
  869. power of z).
  870.  
  871. floor(z) returns the greatest integer less than or equal to z.
  872. For complex numbers, floor returns the largest integer not
  873. greater than the real part of z.
  874.  
  875. imag(z) returns the imaginary part of z as a real number.
  876.  
  877. int(z) returns the integer part of z, truncated toward zero.
  878.  
  879. ln(z) returns the natural logarithm (base e) of z.
  880.  
  881. log(z) returns the logarithm (base 10) of z.
  882.  
  883. real(z) returns the real part of z.
  884.  
  885. sgn(z) returns 1 if z is positive, -1 if z is negative, and 0 if
  886. z is 0.  If z is a complex value, the imaginary component is
  887. ignored.
  888.  
  889. sin(z) returns the sine of z.  sin expects z to be in radians.
  890.  
  891. sinh(z) returns the hyperbolic sine of z.  sinh expects z to be
  892. in radians.
  893.  
  894. sqrt(z) returns the square root of z.
  895.  
  896. tan(z) returns the tangent of z.  tan expects z to be in
  897. radians.
  898.  
  899. tanh(z) returns the hyperbolic tangent of z.  tanh expects z to
  900. be in radians.
  901.  
  902. operators
  903. ─────────
  904.  
  905. All operators in GRAPHICA accept integer, real, and complex
  906. arguments, unless otherwise noted.  The ** operator (exponentia-
  907. tion) is supported, as in FORTRAN.
  908.  
  909. Parentheses may be used to change order of evaluation.
  910.  
  911. The following is a list of all the binary operators and their
  912. usage:
  913.  
  914.          symbol             example              explanation
  915.  
  916.           **                 a**b                 exponentiation
  917.           *                  a*b                  multiplication
  918.           /                  a/b                  division
  919.           %                  a%b                * modulo
  920.           +                  a+b                  addition
  921.           -                  a-b                  subtraction
  922.           ==                 a==b                 equality
  923.           !=                 a!=b                 inequality
  924.           &                  a&b                * bitwise AND
  925.           ^                  a^b                * bitwise exclusive OR
  926.           |                  a|b                * bitwise inclusive OR
  927.           &&                 a&&b               * logical AND
  928.           ||                 a||b               * logical OR
  929.  
  930.           (*) Operator requires integer arguments.
  931.  
  932. Logical AND (&&) and OR (||) short-circuit the way they do in C.
  933. That is, the second && operand is not evaluated if the first is
  934. false;  the second || operand is not evaluated if the first is
  935. true.
  936.  
  937. Multiplication must be explicitly noted with the asterisk;
  938. adjacent parenthetical terms such as (a+b)(c-4) are not
  939. automatically multiplied.
  940.  
  941.           symbol             example              explanation
  942.  
  943.            \:                 a\b:c              * ternary operation
  944.  
  945.           (*) Operator requires an integer argument.
  946.  
  947. The ternary operator evaluates its first argument (a).  If it is
  948. true (non-zero) the second argument (b) is evaluated and
  949. returned, otherwise the third argument (c) is evaluated and
  950. returned.
  951.  
  952. The following is a list of all the unary operators and their
  953. usage:
  954.  
  955.           symbol             example              explanation
  956.  
  957.            -                  -a                   unary minus
  958.            ~                  ~a                 * one's complement
  959.            !                  !a                 * logical negation
  960.            !                  a!                 * factorial
  961.  
  962.           (*) Operator requires an integer argument.
  963.  
  964. The factorial operator returns a real number to allow a greater
  965. range.
  966.  
  967.  
  968. 5.2  Environment Variables
  969. ──────────────────────────
  970.  
  971. An environment variable is used to specify from DOS certain
  972. parameters of program operation.  The "environment" is really
  973. just a common area of memory that programs can write to and read
  974. from.  Some programs are geared to look specifically at the
  975. environment to find particular data important to their
  976. operation.  If we were to look at the DOS environment (by typing
  977. the SET command at the DOS prompt), we might see a listing
  978. similar to the one below:
  979.  
  980.           COMSPEC=C:\COMMAND.COM
  981.           PATH=C:\;C:\DOS;C:\UTIL
  982.  
  983. Other values might be present, like PROMPT=$P$G, and more
  984. depending on the types and kinds of software you are running.
  985. Some programs ask you to place a variable into the environment
  986. equal to a certain value so that they can find support files
  987. which could not be found otherwise.
  988.  
  989. Environment variables are specified before running GRAPHICA.
  990. They can be specified directly from DOS, from within the
  991. AUTOEXEC.BAT file, or from within any batch file.
  992.  
  993. The command for setting an environment variable is:
  994.  
  995.           SET PARAMETER=PARAMETER VALUE
  996.  
  997. A number of shell environment variables are understood by
  998. GRAPHICA.  None of these are required, but may be useful:
  999.  
  1000.           - GRAPTERM
  1001.           - GRAPDUMP
  1002.           - GRAPHELP
  1003.           - GRAPHICA
  1004.  
  1005. If GRAPTERM is defined, it is used as the name of the terminal
  1006. type to be used.  This overrides any terminal type sensed by
  1007. GRAPHICA on start up, but is itself overridden by the
  1008. GRAPHICA.INI (or equivalent) start-up file, and of course by
  1009. later explicit changes.
  1010.  
  1011. GRAPHELP may be defined to be the pathname of the HELP file
  1012. (GRAPHICA.HLP).  GRAPHICA is used as the name of a directory to
  1013. search for a GRAPHICA.INI file if none is found in the current
  1014. directory.  COMSPEC is used for the SHELL command.
  1015.  
  1016. Examples:
  1017.  
  1018.           C:\SET GRAPTERM=hpgl            (sets the terminal type)
  1019.           C:\SET GRAPHELP=C:\plot         (location of the help file)
  1020.           C:\SET GRAPHICA=C:\plot         (location of the .INI file)
  1021.  
  1022.  
  1023. 5.3  Startup File
  1024. ─────────────────
  1025.  
  1026. When GRAPHICA is run, it looks for an initialization file to
  1027. load.  This file is called GRAPHICA.INI.  If this file is not
  1028. found in the current directory, the program will look for it in
  1029. your home directory (the environment variable GRAPHICA should
  1030. contain the name of this directory).
  1031.  
  1032. If the initialization file is found, GRAPHICA executes the
  1033. commands in the file.  This is most useful for setting your
  1034. terminal type and defining any functions or variables which you
  1035. use often.
  1036.  
  1037.  
  1038. 5.4  Comments
  1039. ─────────────
  1040.  
  1041. Comments are supported as follows:  a # or [ may appear in most
  1042. places in a line and GRAPHICA will ignore the rest of the line.
  1043. It will not have this effect inside quotes or inside numbers
  1044. (including complex numbers).
  1045.  
  1046. Examples:
  1047.  
  1048.           graphica>[ test file ]
  1049.           graphica>echo           # echo all commands
  1050.           graphica># map axes
  1051.           graphica>map x 0 10 y 0 10
  1052.  
  1053.  
  1054. 5.5  Text Control Sequences
  1055. ───────────────────────────
  1056.  
  1057. Description:
  1058.  
  1059. Text primitives generate a string of characters on a display
  1060. device in a specific location in the world coordinate system.
  1061. The character string may comprise letters, numerals, and
  1062. symbols.  Text primitives provide a method for labeling and
  1063. clarifying a graphical image.
  1064.  
  1065. This section describes the control sequences which are
  1066. accessible when specifying a string label.  GRAPHICA recognizes
  1067. \ as a special character used to signal the start of an escape
  1068. sequence.  There are two sorts of escape sequences, those that
  1069. take an argument and those that do not.
  1070.  
  1071. Two escape sequences do not take an argument:
  1072.  
  1073.           \U move up half a character size
  1074.           \D move down half a character size
  1075.  
  1076. The following take an integer argument immediately after the
  1077. escape sequence and a space after it to delineate the end (the
  1078. space is not printed):
  1079.  
  1080.           \Cn    set color to n
  1081.           \C-1   reset color to the default
  1082.           \Fn    set font to n
  1083.           \F-1   reset font to the default
  1084.           \Sn    set character size to n
  1085.           \S-1   reset character size to the default
  1086.           \Ln    set character slant to n degrees
  1087.           \L-1   reset character slant to the default slant
  1088.           \An    print ascii n
  1089.           \rn    save current position in register n
  1090.           \Rn    restore position from register n
  1091.  
  1092. Examples:
  1093.  
  1094. to print greek characters such as in 'beta = x + lambda':
  1095.  
  1096.           label '\F2 b\F1 = x + \F2l'
  1097.  
  1098. to label the x-axis with 'velocity U sub f':
  1099.  
  1100.           xlabel 'velocity, U\Dsub'
  1101.  
  1102. to place a top label of 'stress in dynes per cm squared':
  1103.  
  1104.           top label 'stress (dyn\cm\U2\D)'
  1105.  
  1106. to get 'x squared plus y squared':
  1107.  
  1108.           label 'x\U2\D + y\U2'
  1109.  
  1110. and finally, an advanced example.  To get 'A sub b sup beta':
  1111.  
  1112.           label 'A\r1 \Db\R1 \U\F2 b'
  1113.  
  1114. This last example is translated as: do A, save this spot, go down
  1115. half, do b, restore the saved spot, go up half, switch to font 2
  1116. (greek simplex), do beta.  Notice the use of registers to stack
  1117. characters on top of each other.
  1118.  
  1119. To get a backslash, you'll have to use \\.
  1120.  
  1121.  
  1122. 5.6  User-Defined Functions and Variables
  1123. ─────────────────────────────────────────
  1124.  
  1125. User-defined function syntax:
  1126.  
  1127.           <function-name> ( <dummy-var> ) = <expression>
  1128.           show functions
  1129.  
  1130. where <expression> is defined in terms of <dummy-var>.
  1131.  
  1132. User-defined variable syntax:
  1133.  
  1134.           <variable-name> = <constant-expression>
  1135.           show variables
  1136.  
  1137. Description:
  1138.  
  1139. You may define your own functions and variables.  User-defined
  1140. functions and variables may be used anywhere an expression is
  1141. called for.  Variable and function names are case sensitive;
  1142. thus "A" is not equivalent to "a".  A function refers to a
  1143. general expression and can take one argument (dummy variable).
  1144.  
  1145. Examples:
  1146.  
  1147.           graphica>w = 2
  1148.           graphica>q = floor(tan(pi/2 - 0.1))
  1149.           graphica>f(x) = sin(w*x)
  1150.           graphica>sinc(x) = sin(pi*x)/(pi*x)
  1151.           graphica>delta(t) = (t == 0)
  1152.           graphica>ramp(t) = (t > 0) ? t : 0
  1153.  
  1154. The following variables have already been defined for you:
  1155.  
  1156.           pi    = 3.14159
  1157.           e     = 2.71828
  1158.           gamma = 0.57721
  1159.           goldr = 1.61803
  1160.  
  1161.  
  1162. 5.7  Bug Reporting
  1163. ──────────────────
  1164.  
  1165. GRAPHICA is under constant revision, updating and being given
  1166. expanded capabilities.  Prior to each release, I strive to
  1167. verify new features and bug fixes through testing.  However, as
  1168. inevitably happens with any software, some bugs do survive and
  1169. show up in user runs.  Users can aid in the problem fixing
  1170. process by following the guidelines below:
  1171.  
  1172. a) Report any unusual messages, computed results, format
  1173.    overflows, etc. even though the program appears to have
  1174.    terminated normally.
  1175.  
  1176. b) For any abnormal program termination, save the input file and
  1177.    all output obtained by running the program.
  1178.  
  1179. Reported problems will be fixed as quickly as possible.  In most
  1180. instances, alternate methods or techniques of plot formulation
  1181. and input are available to permit graphing despite the bug.  All
  1182. problems encountered with GRAPHICA should be reported to the
  1183. address below.
  1184.  
  1185.  
  1186. CONTRIBUTIONS
  1187. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1188.  
  1189. If you like the program and find it useful, you can support its
  1190. continued development by sending me a contribution of HFL 45.-
  1191. (dutch guilders) or US$25 (US dollars).
  1192.  
  1193. A contribution will entitle you to mail support, a copy of the
  1194. latest version and a printed manual.  More to the point, though,
  1195. it'll make you feel good.  I've not infested the program with
  1196. any beg notices, crippled it or had it verbally insult you after
  1197. a few days.  I trust you to support GRAPHICA if you like it.
  1198.  
  1199. If you want to see additional features in GRAPHICA, please send
  1200. in a contribution.  Feel free to contact me for any reason.
  1201.  
  1202. My address is:
  1203.  
  1204.           Antonio Montes
  1205.           Postbus 13
  1206.           2350 AA Leiderdorp
  1207.           The Netherlands
  1208.  
  1209. e-mail:
  1210.           CompuServe 71031,1162
  1211.           internet: 71031.1162@compuserve.com
  1212.  
  1213.  
  1214. EUROPEAN USERS
  1215. ──────────────
  1216.  
  1217. In addition to sending me your name, address and size of disk
  1218. you need, you may contribute in one of three ways:
  1219.  
  1220. 1) send a eurocheque for HFL 45.00 to my address.
  1221. 2) wire HFL 45.00 to the Postbank Giro Account 3366191 in my name.
  1222. 3) send HFL 45.00 in cash in an envelope at your own risk.
  1223.  
  1224.  
  1225. OTHER USERS
  1226. ───────────
  1227.  
  1228. In addition to sending me your name, address and size of disk
  1229. you need, you may contribute by please sending a check in US
  1230. funds for the equivalent of US$25.
  1231.  
  1232. You can send me a check from any bank in the United States.
  1233. I have a US account and will have no problem making a deposit.
  1234.  
  1235. If you send a check drawn on an international bank, make sure
  1236. that it will be negotiable in the United States.  If there's
  1237. no bank routing number along the bottom of the check, it will
  1238. not clear.
  1239.  
  1240.  
  1241. SHAREWARE DISTRIBUTION
  1242. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1243.  
  1244. I don't have the facilities to send out disks in response to all
  1245. the shareware distributors requesting a disk.  If you're a
  1246. fairly large shareware distributor, I can provide you with a
  1247. floppy disk.
  1248.  
  1249. If you'd like to request a disk, please send me a copy of your
  1250. current catalog.  Your catalog must satisfy the following
  1251. requirements:
  1252.  
  1253. - It must be commercially printed.  I am unable to accept
  1254.   catalogs on disk, catalogs which have been duplicated with a
  1255.   photocopier or mimeograph machine or catalogs which have been
  1256.   created using a dot matrix printer.
  1257.  
  1258. - It must be comprised of descriptive listings for the shareware
  1259.   it offers.  Such a listing should be at least four or five lines
  1260.   describing the software in question.
  1261.  
  1262. - It must explain in a clear and prominent way that the software
  1263.   being offered in the catalog is user supported software, that
  1264.   paying your company for it does not constitute registering it
  1265.   and that users who buy your disks and use the programs on them
  1266.   are expected to register their software if they continue to use it.
  1267.  
  1268. - If you don't have a catalog which meets the above description,
  1269.   you can obtain a copy of the shareware disk for $10.00 (US).
  1270.  
  1271. Please note that I will send you one disk.  I can send you
  1272. updates of the software if you're able to provide me with an
  1273. account of how many copies of the package you have distributed.
  1274.